import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import './assets/styles/index.scss' // 全局样式

// 引入axios请求
import request from '@/utils/request'
Vue.prototype.$http = request

// 引入echarts
import * as echarts from 'echarts'
Vue.prototype.$echarts = echarts

// 引入vue-echarts
import VueECharts from 'vue-echarts'
// 注册组件
Vue.component('v-chart', VueECharts)

// 使用ElementUI
Vue.use(ElementUI, { size: 'medium' })

// 关闭生产环境的提示
Vue.config.productionTip = false

// 简化的全局错误处理，记录错误并显示友好提示
Vue.config.errorHandler = (err, vm, info) => {
  console.error('Vue错误:', err)
  // 显示友好的错误提示
  ElementUI.Message.error('页面加载出错，请刷新页面或联系管理员')
}

// 路由错误处理
router.onError((error) => {
  console.error('路由错误:', error)
})

// 关闭未捕获的Promise错误提示
window.addEventListener('unhandledrejection', event => {
  console.error('未处理的Promise错误:', event.reason)
})

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
